VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "LLNode"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit

Private vm_data_obj As Variant
Private vm_NextItem_obj As LLNode

Public Function shallowCloneNoNext() As LLNode
Dim vl_NewNode As LLNode

Set vl_NewNode = New LLNode
vl_NewNode.initWithData Me.data

Set shallowCloneNoNext = vl_NewNode
End Function

Public Sub initWithDataAndNext(ByVal obj As Variant, ByVal nextItem As LLNode)
If IsObject(obj) Then Set vm_data_obj = obj Else vm_data_obj = obj
If Not nextItem Is Nothing Then Set vm_NextItem_obj = nextItem
End Sub

Public Sub initWithData(ByVal obj As Variant)
initWithDataAndNext obj, Nothing
End Sub

Public Property Get data() As Variant
assignVariantVariable data, vm_data_obj
End Property

Public Property Get nextItem() As LLNode
Set nextItem = vm_NextItem_obj
End Property

Friend Property Set nextItem(ByVal pr_NewNode As LLNode)
Set vm_NextItem_obj = pr_NewNode
End Property

Private Sub Class_Initialize()
cleanUpObjects
End Sub

Private Sub Class_Terminate()
cleanUpObjects
End Sub

Private Sub cleanUpObjects()
Set vm_NextItem_obj = Nothing
Set vm_data_obj = Nothing
End Sub
